"""
某同学从https://yz.chsi.com.cn/获取得到招考数据zhaoshengData.csv，
根据要求，利用pandas库编写程序：
（1）使用程序打开文件，并展示数据前5行，后5行，以及数据的行列数；
（2）筛选显示北京大学的招生情况（3分）；
（3）查看缺失值情况，对缺失值填充为“待明确”;
（4）统计不同学校的招生总数，并将数据生成柱状图。
"""

import pandas as pd
from matplotlib import pyplot as plt

# (1)使用程序打开文件，并展示数据前5行，后5行，以及数据的行列数；
# 读取csv文件
df = pd.read_csv('./data/zhaoshengData.csv')

# 展示数据前5行
print('前5行数据')
print(df.head())

# 展示数据后5行
print('后5行数据')
print(df.tail())

# 显示数据的行列数
print(f"行数: {len(df)}")
print(f"列数: {df.shape[1]}")

# (2)筛选显示北京大学的招生情况；
beijing_university = df[df['学校代码'] == '(10001)北京大学']
print("北京大学的招生情况：\n", beijing_university)

# (3)查看缺失值情况，对缺失值填充为“待明确”；
print("缺失值情况：\n", df.isnull().sum())
df.fillna('待明确', inplace=True)
print("填充后的缺失值情况：\n", df.isnull().sum())
print(df)

# (4)统计不同学校的招生总数，并将数据生成柱状图。
school_counts = df['学校代码'].value_counts()
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus']=False
plt.figure(figsize=(10, 6))
plt.bar(school_counts.index, school_counts.values)
plt.xticks(rotation=45)  # Rotate x-labels for better visibility
plt.xlabel('学校')
plt.ylabel('招生总数')
plt.title('不同学校的招生总数')
plt.show()


# 分隔

